using System;
using System.Collections.Generic;
using System.Text;
using BuildingBasicDomain;
using CommonTypes ;
using MVCFramework;

namespace BuildingStructuralElements.Loads
{
    [Serializable ]
    public abstract class Load :MVCFramework .GlobalizedObject , IModelData ,ISelectable ,ICountable  
    {
        public LoadingCase LC;
		public void Accept(IVisitor visitor)
		{
            visitor.Visit(this);
		}
		
        public abstract Load [] Distribute ();
        public abstract Double TotalLoad(int direction);

        # region " ISelecatble ,Icountable  Implemantaion "

        protected bool isSelected;
        public virtual bool IsSelected
        {
            get { return isSelected; }
            set { this.isSelected = value; }
        }

        protected int id;
        public virtual int Id
        {
            get { return this.id; }
            set { this.id = value; }
        }

        # endregion 
 


    }
}
